The low average utilization of servers is a well known cost concern in data center management. Energy costs are rising, and low utilization translates into more physical machines, increasing expenditures for machine power and capital, as well as operational costs for cooling systems. Furthermore, excess machines require more floor space and added labor costs.
Low utilization has several causes. To guarantee good performance at periods of peak demand, processing capacity is over-provisioned for many enterprise applications. However, processor demand typically exhibits strong daily variability, leading to low average utilization. Another source of low utilization is the traditional deployment pattern of one application per operating system (OS) image and one OS image per unit of physical hardware. This paradigm is typically a consequence of ad-hoc deployment of new applications, as it guarantees application isolation and is very easy to implement.
Consolidation at the application and OS levels can mitigate inefficiencies in using physical resources. Application consolidation requires considerable skill to ensure isolation between co-hosted applications within an OS image. There are multiple aspects of isolation, such as security, resource contention, and co-sensitivity to patches and versions. An example of the latter is the case when updating one application may require an OS patch which is incompatible with a co-hosted application. Consolidation at the OS level avoids these compatibility issues and is generally the preferred approach for consolidating heterogeneous applications. Here, multiple OS images execute concurrently on a single physical platform, leveraging virtualization of the underlying hardware. Originally developed in the 1960's, as known from R. Creasy, The Origin of the VM/370 Time-Sharing System, IBM Journal of Research and Development, 1981; P. Gum. System/370 Extended Architecture: Facilities for Virtual Machines, IBM Journal of Research and Development, 1983; and R. Goldberg, Survey of Virtual Machine Research, in IEEE Computer Magazine, 1974, hardware and software virtualization support for commercial operating systems continues to mature on both x86 and RISC processing platforms, as set forth in IBM Corporation, Advanced POWER Virtualization on IBM System p5, http://www.redbooks.ibm.com/abstracts/sg247940.html, and evidenced by technologies such as VMware EMC, http://www.vmware.com, and Xen, now available from Citrix Systems, Inc., http://www.citrixxenserver.com/Pages/default.aspx. In a typical environment, a so-called “hypervisor” executes on a physical machine (PM) and presents an abstraction of the underlying hardware to multiple virtual machines (VMs). The hypervisors support lifecycle management functions for the hosted VM images, and increasingly facilitate both offline and live migration of the execution environment for the VM, as known from the aforementioned VMware and Xen technologies.
Server consolidation can be static or dynamic. In static consolidation, historical average resource utilizations are typically used as input to an algorithm that maps VMs to PMs. After initial static consolidation, the mapping may not be recomputed for long periods of time, such as several months, and is done off-line. In contrast, dynamic allocation is implemented on shorter timescales, preferably shorter than periods of significant variability of the resource demand. Dynamic allocation leverages the ability to conduct live migration of VMs. This concept is illustrated in FIG. 1. Three physical machines 102, 104, 106 with a virtualization layer 118 are used to execute five virtual machines 108, 110, 112, 114, and 116. In the initial configuration, PM 3, numbered 106, can be in a low power state or powered down, because it is not hosting any VMs. In response to a demand change PM 3 is activated and VM 5, numbered 116, is migrated from PM 2, numbered 104, to PM 3. The initial position is denoted by solid lines while the position after migration is denoted with dotted lines. The migration occurs without service interruption.